/**
 * Copyright (C), 2015-2019, XXX有限公司
 * FileName: PayProcessor
 * Author:   zhouheng
 * Date:     2019/5/15 10:15
 * Description: 支付处理器基类
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.star.pay.service.core.processor;

import com.star.pay.service.core.exception.PayException;
import com.star.pay.service.core.processor.context.PaymentContext;
import com.star.pay.service.core.processor.context.TradeStatusContext;

/**
 * 〈一句话功能简述〉<br> 
 * 〈支付处理器基类〉
 *
 * @author zhouheng
 * @create 2019/5/15
 * @since 1.0.0
 */
public interface PayProcessor {

    /**
     * @description: 查询交易状态（用于做订单查询）
     * @date: 2019/5/15 11:06
     * @author:zhouheng
     */
    Object queryTradeStatus(TradeStatusContext tradeStatusContext) throws PayException;

    /**
     * @description: 处理支付流程(微信创建订单后会生成支付二维码、支付宝会生成一个跳转表单）
     * @date: 2019/5/15 11:06
     * @author:zhouheng
     */
    void process(PaymentContext paymentContext)  throws PayException;
}